16.6 NetworkInterface 

Die Klasse java.net.NetworkInterface repräsentiert eine Netzwerkschnittstelle und mit ihr einen Namen und eine Reihe von IP-Adressen. Mit Hilfe der Klasse ist es möglich, alle IP-Adressen des lokalen Rechners auszulesen. Das folgende Beispiel soll die Methoden der Klasse demonstrieren:
Listing 16.9 com/javatutor/insel/net/LocalIpAddress.java
package com.javatutor.insel.net; import java.net.*; import java.util.*; public class LocalIpAddress { public static void main( String[] args ) throws SocketException { Enumeration<NetworkInterface> netInter = NetworkInterface.getNetworkInterfaces(); int n = 0; while ( netInter.hasMoreElements() ) { NetworkInterface ni = netInter.nextElement(); System.out.println( "NetworkInterface " + n++ + ": " + ni.getDisplayName() ); for ( InetAddress iaddress : Collections.list(ni.getInetAddresses()) ) { System.out.println( "CanonicalHostName: " + iaddress.getCanonicalHostName() ); System.out.println( "IP: " + iaddress.getHostAddress() ); System.out.println( "Loopback? " + iaddress.isLoopbackAddress() ); System.out.println( "SiteLocal? " + iaddress.isSiteLocalAddress() ); System.out.println(); } } } }
Auf meinem Rechner, der sich hinter einem Router befindet, ergibt sich:
NetworkInterface 0: MS TCP Loopback interface CanonicalHostName: localhost IP: 127.0.0.1 Loopback? true SiteLocal? false NetworkInterface 1: Realtek Familie-PCI-Fast Ethernet-NIC - Paketplaner-Miniport CanonicalHostName: moe IP: 192.168.2.135 Loopback? false SiteLocal? true



